package org.ekingstar.qd.service.impl;

import java.util.List;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.ekingstar.qd.domain.QdDomain;
import org.ekingstar.qd.domain.QdSimplemeasu;
import org.ekingstar.qd.service.CMeasureService;

/**
 * 显示字段设置业务处理
 * @author 
 */
public class CMeasureServiceImpl implements CMeasureService {
	@SuppressWarnings("unused")
	private HibernateTemplate hibernateTemplate;
	public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
		this.hibernateTemplate = hibernateTemplate;
	}
	
	@SuppressWarnings("unused")
	private JdbcTemplate jdbcTemplate;
	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
		this.jdbcTemplate = jdbcTemplate;
	}
	
	
	/**
	 * @descripte 根据主题id号查询显示列字段数据信息 
	 * @param strDomainId 主题ID号
	 * @return List
	 */
	@SuppressWarnings({ "unchecked", "unchecked" })
	public List<QdSimplemeasu> getMeasureList(String strDomainId){
		List<QdSimplemeasu> retList = null;
		try{
			if(strDomainId!=null && !"".equals(strDomainId.toString().trim())){
				String hql = " from QdSimplemeasu qdSimplemeasu where qdSimplemeasu.TQdDomain.id='"+strDomainId.toString().trim()+"' order by qdSimplemeasu.orderid";
				retList = hibernateTemplate.find(hql);
			}
		}catch(Exception e){
			e.printStackTrace();
			retList = null;
		}
		return retList;
	}
	
	
	/**
	 * @descripte 新增显示列字段数据，成功返回1，失败返回-1
	 * @param strDomainId 主题ID号
	 * @param strName     字段名称
	 * @param alias       字段别名(可空)
	 * @param strCol      字段     
	 * @param strDescript 描述 
	 * @param nOrderNo    排序号    
	 * @return int
	 */
	public int addMeasure(String strDomainId,String strName,String alias,String strCol,String strDescript,int nOrderNo){
		int retInt = -1;
		try{
			if(strDomainId!=null && !"".equals(strDomainId.toString().trim()) && strName!=null && !"".equals(strName.toString().trim()) && strCol!=null && !"".equals(strCol.toString().trim())){
				QdSimplemeasu qdSimplemeasu = new QdSimplemeasu();
				
				QdDomain qdDomain = new QdDomain();
				qdDomain.setId(strDomainId);
				qdSimplemeasu.setTQdDomain(qdDomain);
				
				qdSimplemeasu.setAlias(alias);
				qdSimplemeasu.setCol(strCol);
				qdSimplemeasu.setDescript(strDescript);
				qdSimplemeasu.setName(strName);
				qdSimplemeasu.setOrderid(nOrderNo);			
				
				hibernateTemplate.save(qdSimplemeasu);
				
				retInt = 1;
			}
		}catch(Exception e){
			e.printStackTrace();
			retInt = -1;
		}
		return retInt;
	}

	
	/**
	 * @descripte 修改显示列数据，成功返回1，失败返回-1
	 * @param MeasureId   显示字段设置ID号
	 * @param strDomainId 主题ID号
	 * @param strName     字段名称
	 * @param alias       字段别名(可空)
	 * @param strCol      字段     
	 * @param strDescript 描述 
	 * @param nOrderNo    排序号    
	 * @return int
	 */
	public int updateMeasure(String MeasureId,String strDomainId,String strName,String alias,String strCol,String strDescript,int nOrderNo){
		int retInt = -1;
		try{
			if(MeasureId!=null && !"".equals(MeasureId.toString().trim()) && strDomainId!=null && !"".equals(strDomainId.toString().trim()) && strName!=null && !"".equals(strName.toString().trim()) && strCol!=null && !"".equals(strCol.toString().trim())){
				QdSimplemeasu qdSimplemeasu = (QdSimplemeasu)hibernateTemplate.get(QdSimplemeasu.class, MeasureId.toString().trim());
				
				if(qdSimplemeasu!=null && qdSimplemeasu.getId()!=null && !"".equals(qdSimplemeasu.getId().toString().trim())){
					QdDomain qdDomain = new QdDomain();
					qdDomain.setId(strDomainId);
					qdSimplemeasu.setTQdDomain(qdDomain);
					
					qdSimplemeasu.setAlias(alias);
					qdSimplemeasu.setCol(strCol);
					qdSimplemeasu.setDescript(strDescript);
					qdSimplemeasu.setName(strName);
					qdSimplemeasu.setOrderid(nOrderNo);			
					
					hibernateTemplate.save(qdSimplemeasu);
					
					retInt = 1;
				}				
			}
		}catch(Exception e){
			e.printStackTrace();
			retInt = -1;
		}
		return retInt;
	}
	
	
	/**
	 * @descripte 删除选定的主题配置字段,成功返回1，否则返回-1
	 * @param MeasureId   显示字段设置ID号	   
	 * @return int
	 */
	public int deleteMeasure(String MeasureId){
		int retInt = -1 ;
		try{
			if(MeasureId!=null && !"".equals(MeasureId.toString().trim())){
				QdSimplemeasu qdSimplemeasu = (QdSimplemeasu)hibernateTemplate.get(QdSimplemeasu.class, MeasureId.toString().trim());
				if(qdSimplemeasu!=null && qdSimplemeasu.getId()!=null && !"".equals(qdSimplemeasu.getId().toString().trim())){
					hibernateTemplate.delete(qdSimplemeasu);
					retInt = 1;
				}
			}
		}catch(Exception e){
			e.printStackTrace();
			retInt = -1;
		}
		
		return retInt;
	}
	
	
	/**
	 * @descripte 删除选定的主题配置字段,成功返回1，否则返回-1
	 * @param MeasureId   显示字段设置ID号集	   
	 * @return int
	 */
	public int deleteMeasure(String[] MeasureId){
		int retInt = -1 ;
		try{
			if(MeasureId!=null && MeasureId.length>0){
				for(int i=0;i<MeasureId.length;i++){
					if(MeasureId[i]!=null && !"".equals(MeasureId[i].toString().trim())){
						QdSimplemeasu qdSimplemeasu = (QdSimplemeasu)hibernateTemplate.get(QdSimplemeasu.class, MeasureId[i].toString().trim());
						if(qdSimplemeasu!=null && qdSimplemeasu.getId()!=null && !"".equals(qdSimplemeasu.getId().toString().trim())){
							hibernateTemplate.delete(qdSimplemeasu);							
						}
					}
				}
				retInt = 1;
			}
		}catch(Exception e){
			e.printStackTrace();
			retInt = -1;
		}
		return retInt;
	}
	
	
	/**
	 * @descripte 设置排序号，设置成功返回1，否则返回-1
	 * @param MeasureId   显示字段设置ID号集合
	 * @param nOrderNo    排序号集   
	 * @return int
	 */
	public int setOrderNo(String[] MeasureId,int[] nOrderNo){
		int retInt = -1;
		try{
			if(MeasureId!=null && MeasureId.length>0 && nOrderNo!=null && nOrderNo.length>0 && nOrderNo.length==MeasureId.length){
				for(int i=0;i<MeasureId.length;i++){
					if(MeasureId[i]!=null && !"".equals(MeasureId[i].toString().trim())){
						QdSimplemeasu qdSimplemeasu = (QdSimplemeasu)hibernateTemplate.get(QdSimplemeasu.class, MeasureId[i].toString().trim());
						if(qdSimplemeasu!=null && qdSimplemeasu.getId()!=null && !"".equals(qdSimplemeasu.getId().toString().trim())){
							qdSimplemeasu.setOrderid(nOrderNo[i]);
							hibernateTemplate.update(qdSimplemeasu);							
						}
					}
				}
				retInt = 1;
			}
		}catch(Exception e){
			e.printStackTrace();
			retInt = -1;
		}
		
		return retInt;
	}

}
